// 此vm参数为页面的实例，可以通过它引用vuex中的变量
module.exports = (vm) => {
  // 初始化请求配置
  uni.$u.http.setConfig((config) => {
    /* config 为默认全局配置*/
    if (process.env.NODE_ENV === "development") {
      // 开发环境下的配置
      // config.baseURL = "http://bm-intelligent.com:7060";
      config.baseURL = "https://k.firecracker.cc:8011/prod-api";
    } else {
      // 生产环境下的配置
      config.baseURL = "https://k.firecracker.cc:8011/prod-api";
      // config.baseURL = "http://58.220.195.210:7060";
      // config.baseURL = "http://bm-intelligent.com:7060";
    }
    uni.setStorageSync("baseURL", config.baseURL);
    return config;
  });

  // 请求拦截
  uni.$u.http.interceptors.request.use(
    (config) => {
      // 可使用async await 做异步操作
      // console.log(vm.$store.state.token)
      // console.log(uni.setStorageSync('loginTokens'))
      config.header.Authorization =
        "Bearer " + uni.getStorageSync("loginTokens");
      return config;
    },
    (config) => {
      // 可使用async await 做异步操作
      return Promise.reject(config);
    }
  );

  // 响应拦截
  uni.$u.http.interceptors.response.use(
    (response) => {
      /* 对响应成功做点什么 可使用async await 做异步操作*/

      console.log(111, response);
      const data = response.data;

      if (data.code !== 200) {
        if (data.msg == "账号未登录") {
          uni.removeStorageSync("loginTokens");
          uni.removeStorageSync("companyId");
          uni.removeStorageSync("companyName");
          data.code !== 401 ? uni.$u.toast(data.msg) : "";
          uni.$u.route("/pages/login/login");
        } else {
          uni.$u.toast(data.msg);
        }

        // return;
        if (data.code == 401) {
          uni.removeStorageSync("loginTokens");
          uni.removeStorageSync("companyId");
          uni.removeStorageSync("companyName");
          uni.$u.route("/pages/login/login");
        } else {
          uni.$u.toast(data.msg ? data.msg : "数据有误，请检查");
        }
      } else {
        if (data.rows) {
          return data.rows;
        } else {
          if (data.data === undefined) {
            return response.data;
          } else {
            return data.data;
          }
        }
      }
    },
    (response) => {
      // 对响应错误做点什么 （statusCode !== 200）
      console.log("response", response);
      if (response.code !== 200) {
        uni.removeStorageSync("loginTokens");
        uni.removeStorageSync("companyId");
        uni.removeStorageSync("companyName");
        // if (response.data) {
        // 	const data = response.data
        // 	data.message ? uni.$u.toast(data.message) : uni.$u.toast('网络请求失败，请稍后再试')
        // }else{
        // 	uni.$u.toast('网络请求失败，请稍后再试')
        // }
        response.errMsg == "request:fail"
          ? uni.$u.toast("网络请求失败，请稍后再试")
          : uni.$u.toast(response.errMsg);
        uni.$u.route("/pages/login/login");
      }
      return Promise.reject(response);
    }
  );
};
